package com.app.mbeans.caja;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import com.core.app.mbeans.MBeanAbstracto;

@ManagedBean(name="cajasBean")
@ViewScoped
public class CajasBean extends MBeanAbstracto implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private List listaMesas;
	private List listaDetalleOrden;
	private Map detalleTicket;
	private Map mesaSeleccionada;
	
	@PostConstruct
	public void inicializar(){
		listaMesas = generarListaMesas();
		mesaSeleccionada = (Map)listaMesas.get(0);
		listaDetalleOrden = (List)mesaSeleccionada.get("detalleOrden");
		detalleTicket = (Map)mesaSeleccionada.get("detalleTicket");
	}
	
	public List generarListaMesas(){
		List listaMesas = new ArrayList<Map<String, Object>>();
		Map mapaMesa = new HashMap<String, Object>();
		Map mapaDetalleOrden = new HashMap<String, Object>();
		Map mapaDetalleTicket = new HashMap<String, Object>();
		
		mapaMesa.put("idMesa",1);
		mapaMesa.put("numeroMesa", 1);
		mapaMesa.put("status", "Atendida");
		mapaMesa.put("numeroStatus", 1);
		mapaMesa.put("mesero","Luis Peres");
		mapaMesa.put("numeroPersonas", 2);
		mapaMesa.put("detalleOrden", generarListaDetalleOrden1());
		mapaMesa.put("detalleTicket", generarListaDetalleTicket1());
		mapaMesa.put("total", 240.00);
		
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",2);
		mapaMesa.put("numeroMesa", 2);
		mapaMesa.put("status", "Desocupada");
		mapaMesa.put("numeroStatus", 0);
		mapaMesa.put("mesero",null);
		mapaMesa.put("numeroPersonas", 0);
		mapaMesa.put("total", 0);
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",3);
		mapaMesa.put("numeroMesa", 3);
		mapaMesa.put("status", "Atendida");
		mapaMesa.put("numeroStatus", 1);
		mapaMesa.put("mesero","Antonio Lopez");
		mapaMesa.put("numeroPersonas", 4);
		mapaMesa.put("detalleOrden", generarListaDetalleOrden3());
		mapaMesa.put("detalleTicket", generarListaDetalleTicket3());		
		mapaMesa.put("total", 280.00);
		listaMesas.add(mapaMesa);

		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",4);
		mapaMesa.put("numeroMesa", 4);
		mapaMesa.put("status", "Atendida");
		mapaMesa.put("numeroStatus", 1);
		mapaMesa.put("mesero","Karla Perez");
		mapaMesa.put("numeroPersonas", 6);
		mapaMesa.put("detalleOrden", generarListaDetalleOrden4());
		mapaMesa.put("detalleTicket", generarListaDetalleTicket4());		
		
		mapaMesa.put("total", 330.00);
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",5);
		mapaMesa.put("numeroMesa", 5);
		mapaMesa.put("status", "Atendida");
		mapaMesa.put("numeroStatus", 1);
		mapaMesa.put("mesero","Karina Mendez");
		mapaMesa.put("numeroPersonas", 2);
		mapaMesa.put("detalleOrden", generarListaDetalleOrden5());
		mapaMesa.put("detalleTicket", generarListaDetalleTicket5());		
		
		mapaMesa.put("total", 700.00);
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",6);
		mapaMesa.put("numeroMesa", 6);
		mapaMesa.put("status", "Desocupada");
		mapaMesa.put("numeroStatus", 0);
		mapaMesa.put("mesero",null);
		mapaMesa.put("numeroPersonas", 0);
		mapaMesa.put("total", 0);
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",7);
		mapaMesa.put("numeroMesa", 7);
		mapaMesa.put("status", "Atendida");
		mapaMesa.put("numeroStatus", 1);
		mapaMesa.put("mesero","Arturo Hernandez");
		mapaMesa.put("numeroPersonas", 3);
		mapaMesa.put("detalleOrden", generarListaDetalleOrden3());
		mapaMesa.put("detalleTicket", generarListaDetalleTicket3());		
		mapaMesa.put("total", 280.00);
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",8);
		mapaMesa.put("numeroMesa", 8);
		mapaMesa.put("status", "Atendida");
		mapaMesa.put("numeroStatus", 1);
		mapaMesa.put("mesero","Antonio Hernandez");
		mapaMesa.put("numeroPersonas", 2);
		mapaMesa.put("detalleOrden", generarListaDetalleOrden1());
		mapaMesa.put("detalleTicket", generarListaDetalleTicket1());		
		
		mapaMesa.put("total", 240.00);
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",9);
		mapaMesa.put("numeroMesa", 9);
		mapaMesa.put("status", "Desocupada");
		mapaMesa.put("numeroStatus", 0);
		mapaMesa.put("mesero","Antonio Hernandez");
		mapaMesa.put("numeroPersonas", 1);
		mapaMesa.put("total", 100.89);
		listaMesas.add(mapaMesa);
		
		mapaMesa = new HashMap<String, Object>();
		mapaMesa.put("idMesa",10);
		mapaMesa.put("numeroMesa", 10);
		mapaMesa.put("status", "Atendida");
		mapaMesa.put("numeroStatus", 1);
		mapaMesa.put("mesero","Luis Peres");
		mapaMesa.put("numeroPersonas", 2);
		mapaMesa.put("detalleOrden", generarListaDetalleOrden1());
		mapaMesa.put("detalleTicket", generarListaDetalleTicket1());		
		
		mapaMesa.put("total", 240.00);
		listaMesas.add(mapaMesa);
		
		return listaMesas;
	}
	
	public List generarListaDetalleOrden1(){
		List listaDetalleOrden = new ArrayList<Map<String, Object>>();
		Map mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Tacos al Pastor");
		mapaDetalleOrden.put("precio",50.00);
		mapaDetalleOrden.put("cantidad",4);
		mapaDetalleOrden.put("subTotal", 200.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Horchata");
		mapaDetalleOrden.put("precio",20.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 40.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		return listaDetalleOrden;
	}
	
	public Map generarListaDetalleTicket1(){
		Map mapaDetalleTicket = new HashMap<String, Object>();
		mapaDetalleTicket.put("subTotal", 210.40);
		mapaDetalleTicket.put("iva",39.60);
		mapaDetalleTicket.put("total", 240.00);
		
		return mapaDetalleTicket;
	}
	
	public List generarListaDetalleOrden3(){
		List listaDetalleOrden = new ArrayList<Map<String, Object>>();
		Map mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Tacos al Pastor");
		mapaDetalleOrden.put("precio",50.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 100.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Alambre de Pastor");
		mapaDetalleOrden.put("precio",60.00);
		mapaDetalleOrden.put("cantidad",1);
		mapaDetalleOrden.put("subTotal", 60.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Torta Cubana");
		mapaDetalleOrden.put("precio",40.00);
		mapaDetalleOrden.put("cantidad",1);
		mapaDetalleOrden.put("subTotal", 40.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Agua Horchata");
		mapaDetalleOrden.put("precio",20.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 40.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Cerveza");
		mapaDetalleOrden.put("precio",20.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 40.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		return listaDetalleOrden;
	}
	
	public Map generarListaDetalleTicket3(){
		Map mapaDetalleTicket = new HashMap<String, Object>();
		mapaDetalleTicket.put("subTotal", 235.40);
		mapaDetalleTicket.put("iva",44.60);
		mapaDetalleTicket.put("total", 280.00);
		
		return mapaDetalleTicket;
	}
	
	public List generarListaDetalleOrden4(){
		List listaDetalleOrden = new ArrayList<Map<String, Object>>();
		Map mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Tacos al Pastor");
		mapaDetalleOrden.put("precio",50.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 100.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Hamburguesa Hawaiana con Papas");
		mapaDetalleOrden.put("precio",60.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 120.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Taco Arabe Sencillo");
		mapaDetalleOrden.put("precio",20.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 40.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Cerveza");
		mapaDetalleOrden.put("precio",20.00);
		mapaDetalleOrden.put("cantidad",2);
		mapaDetalleOrden.put("subTotal", 40.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Duraznos con crema");
		mapaDetalleOrden.put("precio",30.00);
		mapaDetalleOrden.put("cantidad",1);
		mapaDetalleOrden.put("subTotal", 30.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		return listaDetalleOrden;
	}
	
	public Map generarListaDetalleTicket4(){
		Map mapaDetalleTicket = new HashMap<String, Object>();
		mapaDetalleTicket.put("subTotal", 289.40);
		mapaDetalleTicket.put("iva",40.60);
		mapaDetalleTicket.put("total", 330.00);
		
		return mapaDetalleTicket;
	}
	
	public List generarListaDetalleOrden5(){
		List listaDetalleOrden = new ArrayList<Map<String, Object>>();
		Map mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Tacos al Pastor");
		mapaDetalleOrden.put("precio",50.00);
		mapaDetalleOrden.put("cantidad",10);
		mapaDetalleOrden.put("subTotal", 500.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
			
		mapaDetalleOrden = new HashMap<String, Object>();
		mapaDetalleOrden.put("producto", "Cerveza");
		mapaDetalleOrden.put("precio",20.00);
		mapaDetalleOrden.put("cantidad",10);
		mapaDetalleOrden.put("subTotal", 200.00);
		listaDetalleOrden.add(mapaDetalleOrden);
		
		return listaDetalleOrden;
	}
	
	public Map generarListaDetalleTicket5(){
		Map mapaDetalleTicket = new HashMap<String, Object>();
		mapaDetalleTicket.put("subTotal", 639.15);
		mapaDetalleTicket.put("iva", 60.85);
		mapaDetalleTicket.put("total", 700.00);
		
		return mapaDetalleTicket;
	}
	
	public void verDetalle(Object parametro){
		System.out.println("Ver Detalle: "+parametro);
		mesaSeleccionada = (Map)parametro;
		listaDetalleOrden = (List)mesaSeleccionada.get("detalleOrden");
		detalleTicket = (Map)mesaSeleccionada.get("detalleTicket");
	}
	
	public List getListaMesas() {
		return listaMesas;
	}
	public void setListaMesas(List listaMesas) {
		this.listaMesas = listaMesas;
	}
	public Map getMesaSeleccionada() {
		return mesaSeleccionada;
	}
	public void setMesaSeleccionada(Map mesaSeleccionada) {
		this.mesaSeleccionada = mesaSeleccionada;
	}

	public List getListaDetalleOrden() {
		return listaDetalleOrden;
	}

	public void setListaDetalleOrden(List listaDetalleOrden) {
		this.listaDetalleOrden = listaDetalleOrden;
	}

	public Map getDetalleTicket() {
		return detalleTicket;
	}

	public void setDetalleTicket(Map detalleTicket) {
		this.detalleTicket = detalleTicket;
	}

}
